﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Proyecta.Data;

namespace Proyecta.Home
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        /// <summary>
        /// Registra un nuevo usuario de tipo emprendedor y fondeador
        /// </summary>

        private void registrar() {

            Data.BO.UsuariosBO oUsuario = new Data.BO.UsuariosBO();
            Data.DAO.UsuariosDAO oUsuarioDao = new Data.DAO.UsuariosDAO();
            
            Helpers.Encrypt oContrasena = new Helpers.Encrypt();
            String contrasena = oContrasena.Encode(this.txtContrasena.Text);

            oUsuario.Nombres = this.txtNombre.Text;
            oUsuario.ApellidoPaterno = this.txtPaterno.Text;
            oUsuario.ApellidoMaterno = this.txtMaterno.Text;
            oUsuario.Email = this.txtEmail.Text;
            oUsuario.Contrasena = contrasena;
            oUsuario.idRol = 1;
            oUsuario.eliminado = false;
            oUsuario.FechaNacimiento = DateTime.Now;
            oUsuario.idInstitucion = int.MinValue;

            oUsuarioDao.Insertar(oUsuario);

            Session["user_id"] = "2";
            Session["user_rol"] = "1";
            this.nivel();
        }

        /// <summary>
        /// Conecta al usuario al sistema
        /// </summary>
        private void conectar() {

            Data.BO.UsuariosBO oUsuario = new Data.BO.UsuariosBO();
            Data.DAO.UsuariosDAO oUsuarioDao = new Data.DAO.UsuariosDAO();

            oUsuario.Email = this.txtUsuarioLogin.Text;
            oUsuario.Contrasena = this.txtContrasenaLogin.Text;
            DataSet dsUsuario;
            dsUsuario = oUsuarioDao.MostrarporEmail(oUsuario);
            if (dsUsuario.Tables[0].Rows.Count > 0)
            {
                String usuario = dsUsuario.Tables[0].Rows[0]["Email"].ToString();
                String contrasena = dsUsuario.Tables[0].Rows[0]["Contrasena"].ToString();
                String idusuario = dsUsuario.Tables[0].Rows[0]["IdUsuario"].ToString();
                int idrol =  Convert.ToInt32(dsUsuario.Tables[0].Rows[0]["IdRol"].ToString());
                
                Helpers.Encrypt oEncrypt = new Helpers.Encrypt();
                string oContrasenaCliente = oEncrypt.Encode(oUsuario.Contrasena);                
                if(oContrasenaCliente==contrasena){
                    Session["user_id"] = idusuario;
                    Session["user_rol"] = idrol;
                    this.nivel();
                }
            }
            else { 
            
            }
            
        }

        protected void btn_registrar_Click(object sender, EventArgs e)
        {
            this.registrar();
        }

        protected void btnLogin_Click(object sender, EventArgs e)
        {
            this.conectar();
        }


        private void nivel(){
            
            switch(Convert.ToInt32(Session["user_rol"].ToString())){
                case 1:                
                case 2:
                    Response.Redirect("Wizard.aspx");
                break;
                case 3:
                    Response.Redirect("../Dashboard/Index.aspx");
                break;
                case 4:
                Response.Redirect("../Dashboard/Index.aspx");
                break;
            }
              
        }

    }
}